#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
#include<assert.h>

//int main()
//{
//    char str[100] = { 0 };
//    int i = 0;
//    int j = 0;
//    int z = 0;
//    int tmp = 0;
//    int n = 0;
//    while(scanf("%c", &str[i])!=EOF)
//    {
//        i++;
//    }
//    for (j = 0; j < i; j++)
//    {
//        if (str[j] == ' ' || str[j] == '.')
//        {
//            for (z = j + 1; str[z] == ' ' || str[z] == '.'; z++)
//            {
//                for (; j >= 0; j--)
//                {
//                    tmp = str[j];
//                    str[j] = str[z];
//                    str[z] = tmp;
//                }
//            }
//        }
//    }
//    for (j = 0; i < j; j++)
//    {
//        printf("%c", str[j]);
//    }
//    return 0;
//}

void swap(char* left, char* right)
{
	assert(left);
	assert(right);
	int tmp = 0;
	while (left < right)
	{
		tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
int main()
{
	char str[101] = { 0 };
	gets(str);
	int len = strlen(str);
	char* p = str;
	int i = 0;
	while (*p)
	{
		char* start = p;
        char* end = p;
		while (*end!= ' '&& *end!='\0')
		{
			end++;
		}
		swap(start, end-1);
		if (end != '\0')
			p = end + 1;
		else
			p = end;
	}
	swap(str, str+len-1);
	printf("%s\n", str);
	return 0;
}